/**
 * Copyright (c) 2013-Now http://jeesite.com All rights reserved.
 */
package com.jeesite.modules.storage.service;

import com.jeesite.common.service.CrudService;
import com.jeesite.modules.storage.common.Constant;
import com.jeesite.modules.storage.dao.BankDao;
import com.jeesite.modules.storage.entity.Bank;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;


/**
 * 银行卡Service
 */
@Service
@Transactional(readOnly=true)
public class BankService extends CrudService<BankDao, Bank> {

	/**
	 * 获取系统预设银行卡列表
	 * @return 系统预设银行卡列表
	 */
	public List<String> getSysList() {
		List<String> list = new ArrayList<>();
		List<Map> maps = dao.findSysList();
		for (Map map : maps){
			list.add(String.valueOf(map.get("name")));
		}
		return list;
	}

	/**
	 * 获取银行卡类型列表
	 * @return 银行卡类型列表
	 */
	public List<String> getTypeList() {
		List<String> types = new ArrayList<>();
		types.add("储蓄卡");
		types.add("信用卡");
		return types;
	}

	/**
	 * 获取会员银行卡列表
	 * @param memberId 会员Id
	 * @param size 每页数量
	 * @param page 页码
	 * @return 会员银行卡列表
	 */
	@Transactional(readOnly=false)
	public List<Map> getListByMemberId(String memberId, Integer size, Integer page) {
		return dao.findListByMemberId(memberId,size * (page - 1) , size);
	}

	/**
	 * 保存
	 * @param memberId 会员Id
	 * @param contact 联系人
	 * @param number 卡号
	 * @param name 名称
	 * @param type 类型
	 * @param phone 手机号
	 * @return 结果
	 */
	@Transactional(readOnly=false)
	public Integer save(String memberId, String contact, String number, String name, String type, String phone) {
		Bank refBank = dao.findSysByName(name);
		if(refBank == null){
			return 500;
		}
		Bank bank = new Bank();
		bank.setMemberId(memberId);
		bank.setLogo(refBank.getLogo());
		bank.setName(refBank.getName());
		bank.setContact(contact);
		bank.setNumber(number);
		bank.setType(type);
		bank.setPhone(phone);
		super.save(bank);
		return 200;
	}
}
